package cn.yuanqiao.archive.liyong.service;

import cn.yuanqiao.archive.liyong.domain.ListQuery;
import cn.yuanqiao.archive.liyong.domain.YqVisitkeywords;
import cn.yuanqiao.common.core.page.TableDataInfo;
import com.alibaba.fastjson.JSONObject;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @ProjectName: ruoyi-modules-system
 * @Package: cn.yuanqiao.archive.liyong.service
 * @ClassName: ListQueryService
 * @Author: lenovo
 * @Description: hbWang
 * @Date: 2023/6/27 11:21-
 * @Version: 1.0
 */
public interface ListQueryService {


    /**
     * 目录检索接口
     *
     * @param
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author hbWang
     * @date 2023/6/27 18:22
     */
    TableDataInfo query(ListQuery listQuery);

    /**
     * 目录检索接口  查询列表总数
     *
     * @param
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author hbWang
     * @date 2023/6/27 18:22
     */
    Long queryCount(ListQuery listQuery);

    /**
     * 查询全宗信息
     * @param menuId
     * @return
     */
    public List<Map<String, Object>> queryFonds(String menuId);

    /**
     * 查询门类信息
     *
     * @param type
     * @return
     */
    Map<String, Object> queryCategory(String type, String menuId,String qzh);

    /**
     * 查询展示字段信息
     *
     * @return
     */
    List<Map<String, String>> queryFields(com.alibaba.fastjson.JSONObject json);

    /**
     * 查询条件
     *
     * @return
     */
    List<Map<String, Object>> queryApply(JSONObject json);

    /**
     * 新增检索历史
     *
     * @param keyWords
     * @param menuId
     * @return
     */
    int insertYqVisitkeywords(String keyWords, String menuId);

    /**
     * 查询检束历史
     *
     * @param yqVisitkeywords
     * @return
     */
    List<String> selectYqVisitkeywordsList(YqVisitkeywords yqVisitkeywords);

    /**
     * 查询分类
     *
     * @return
     */
    List<Map<String, String>> queryFication(String menuId);

    /**
     * 处理前端查询条件
     *
     * @param listQuery
     * @param field
     * @param t
     * @return
     */
    public String concatQueryCondition(ListQuery listQuery, String field, String t);

    /**
     * 处理查询所有信息时字段处理
     *
     * @param list
     * @return
     */
    public Map<String, String> initializationFiled(List<Map<String, Object>> list);

    /**
     * 查询门类信息
     *
     * @param type
     * @param menuId
     * @return
     */
    List<Map<String, Object>> queryCategoryIds(String type, String menuId,String qzh);



    void downloadElectronics(JSONObject json, HttpServletResponse response) throws IOException;
}
